import pandas as pd
import matplotlib.pyplot as plt

# plt.rcParams["font.sans-serif"] = ["SimHei"]  # 设置中文字体为SimHei

# 读取 Excel 文件，假设没有列名，使用默认的整数索引
df = pd.read_excel("fisher_result.xlsx", header=None)

# 提取数据
x = df.iloc[:, 2]  # 第三列为横坐标
y = df.iloc[:, 3]  # 第四列为纵坐标
labels = df.iloc[:, 0]  # 编号

# 提取组别并去重
groups = df.iloc[:, 1].unique()

# 设置颜色映射
colors = plt.cm.get_cmap("tab10", len(groups))

# 绘制散点图
plt.figure(figsize=(8, 6))
for i, group in enumerate(groups):
    group_data = df[df.iloc[:, 1] == group]
    plt.scatter(
        group_data.iloc[:, 2], group_data.iloc[:, 3], color=colors(i), label=group
    )
    for index, row in group_data.iterrows():
        plt.text(
            row[2], row[3], str(int(row[0])).replace("-", "\u2212")
        )  # 添加编号，转换为整数显示

plt.xlabel("fisher 1")
plt.ylabel("fisher 2")
# plt.title("二维散点图")
plt.legend()
# plt.grid(True)
plt.show()
